4. 技术架构设计
4.1 前端技术选型
| 选型 | 技术 | 理由 |
|---|---|---|
| 框架 | Vue 3 + TypeScript | 国内生态成熟、医院IT团队学习曲线低、组件库丰富 |
| UI组件库 | Element Plus | 企业级后台组件完整、表格/表单/图表支持好 |
| 地图/平面图 | Leaflet.js(2D)+Three.js(3D) | 轻量、支持自定义瓦片、医疗平面图适配好 |
| 图表 | ECharts 5 | 国产、中文文档、医疗数据可视化模板丰富 |
| 状态管理 | Pinia | Vue 3官方推荐、TypeScript友好 |
| 构建工具 | Vite | 开发热更新<1s、构建速度5倍于webpack |
| 移动端(管理) | uni-app | 一套代码→微信小程序+H5+APP |
| 大屏看板 | Vue 3 + DataV + ECharts | 适配4K大屏、实时数据WebSocket推送 |
4.2 后端技术选型
| 选型 | 技术 | 理由 |
|---|---|---|
| 语言 | Java 17+ | 医院IT团队Java为主、HIS对接生态好 |
| 框架 | Spring Boot 3.x + Spring Cloud | 微服务架构、医院私有云适配 |
| ORM | MyBatis-Plus | 国内医疗行业主流、复杂SQL灵活 |
| 工作流引擎 | Flowable 7.x | BPMN 2.0标准、审批流引擎成熟 |
| 消息队列 | RabbitMQ | MQTT桥接、消息可靠投递、医院运维熟悉 |
| 任务调度 | XXL-JOB | 分布式调度、可视化管理、Cron表达式 |
| API网关 | Spring Cloud Gateway | 路由/限流/鉴权统一入口 |
| 服务注册 | Nacos | 配置中心+服务发现二合一 |
4.3 数据库选型
| 数据类型 | 存储引擎 | 理由 | 集群方案 |
|---|---|---|---|
| 业务数据(资产/工单/用户) | PostgreSQL 15+ | 空间扩展PostGIS、JSON支持好、性能优于MySQL复杂查询 | 主从复制+读写分离 |
| 时序数据(传感器/设备监控) | TDengine 3.x | 医疗IoT时序数据专用、写入速度10倍于InfluxDB、压缩率10:1 | 集群模式3节点 |
| 文件存储(图片/设计文件) | MinIO | S3兼容、私有化部署、医院数据不出网 | 纠删码模式4节点 |
| 缓存(会话/实时状态) | Redis 7.x | 高性能KV、发布订阅支持设备状态推送 | 哨兵模式3节点 |
| 全文检索 | Elasticsearch 8.x | 资产/工单全文检索、日志聚合 | 3节点集群 |
4.4 移动端方案
| 方案 | 适用场景 | 选型 | 理由 |
|---|---|---|---|
| 管理端(巡检/工单) | 维修人员/标识管理员 | uni-app→微信小程序+H5 | 轻量、免安装、医院推广方便 |
| 患者导航端 | 患者及家属 | 微信小程序 | 零安装、扫码即用、BLE API支持 |
| 大屏看板 | 院领导/后勤处 | Vue 3 Web应用(4K适配) | 挂载大屏终端、Chrome Kiosk模式 |
4.5 部署方案
| 部署模式 | 适用场景 | 架构 | 估算成本(年) |
|---|---|---|---|
| 私有云(推荐) | 三甲医院、数据安全要求高 | 医院机房→3台物理机(K8s集群)+NAS存储 | 15-25万(硬件折旧+电费) |
| 混合云 | 多院区、分院区公云 | 核心数据私有云+边缘计算公有云 | 10-20万(混合) |
| 公有云 | 小型医院/快速部署 | 阿里云/华为云ECS+RDS+OSS | 5-10万(云资源) |
私有云硬件配置建议(1000标识设备规模):
| 服务器 | 数量 | 配置 | 用途 |
|---|---|---|---|
| K8s Master | 3 | 8C/16G/200G SSD | 控制面(高可用) |
| K8s Worker | 3 | 16C/32G/500G SSD | 业务服务+数据库 |
| NAS存储 | 1 | 4×4TB HDD(RAID5) | 文件/图片/备份 |
| 边缘网关 | 按需 | ARM网关(见模块七) | IoT数据采集 |
4.6 安全设计
认证授权:
| 安全项 | 方案 | 参数 |
|---|---|---|
| 认证 | OAuth 2.0 + JWT | Access Token有效期2h,Refresh Token 7天 |
| 授权 | RBAC + 数据范围隔离 | 角色权限+院区/科室数据隔离 |
| SSO | 与医院统一认证对接 | CAS/OIDC协议 |
| API鉴权 | 网关层统一鉴权 | 每个API需声明所需权限 |
| 密码策略 | ≥8位+大小写+数字+特殊字符 | 90天强制更换,历史5次不可重复 |
数据加密:
| 数据类型 | 加密方式 | 说明 |
|---|---|---|
| 传输层 | TLS 1.3 | 全站HTTPS+MQTT over TLS |
| 存储层-敏感字段 | AES-256-GCM | 手机号/身份证号等PII字段 |
| 存储层-数据库 | 透明加密(TDE) | PostgreSQL/TDengine启用 |
| 文件存储 | 服务端加密(SSE-S3) | MinIO启用 |
| 备份 | AES-256加密备份 | 异地备份加密传输+存储 |
等保要求(目标等级:等保二级):
| 等保控制点 | 实现措施 |
|---|---|
| 安全物理环境 | 医院机房(已有等保三级) |
| 安全通信网络 | 专网/VPC隔离、防火墙、IPS |
| 安全区域边界 | WAF、访问控制策略 |
| 安全计算环境 | 身份鉴别+访问控制+入侵防范+恶意代码防范 |
| 安全管理中心 | 集中日志审计(Audit→ELK)、集中监控(Prometheus+Grafana) |
| 安全管理制度 | 安全策略+制度+操作规程文档 |
审计日志:
| 审计项 | 记录内容 | 保留期限 |
|---|---|---|
| 登录日志 | 用户/时间/IP/结果(成功/失败) | 6个月 |
| 操作日志 | 用户/时间/模块/操作类型/操作对象/变更前后值 | 12个月 |
| 数据访问日志 | 用户/时间/访问的数据范围 | 6个月 |
| 系统异常日志 | 时间/异常类型/堆栈/影响范围 | 12个月 |
4.7 性能要求
| 指标 | 要求 | 测试方法 |
|---|---|---|
| 并发用户数 | ≥200(同时在线操作) | JMeter压力测试 |
| API平均响应时间 | ≤500ms(P95) | APM监控 |
| 页面加载时间 | ≤3s(首屏) | Lighthouse测试 |
| 数据库查询 | 复杂查询≤2s,简单查询≤100ms | 慢查询日志 |
| 文件上传 | 单文件≤50MB,批量≤200MB | — |
| 可用性 | 99.9%(年停机≤8.76h) | 监控告警+自动恢复 |
| 数据备份 | 日增量备份+周全量备份,RPO≤24h,RTO≤4h | 定期恢复演练 |
| 灾备 | 异地备份(至少1份异地) | — |